package com.example.homework.homework03;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;


public class Test {
    public static void main(String[] args) {
        // 当我们在京东注册新用户的时候,我们输入一个要注册的用户名,
        // 如果之前有该用户名注册过,京东是不会让相同的用户名注册的,会注册失败.根据以上描述,设计程序,完成注册功能!

        // 1.输入用户名和密码之后,如果集合中有该用户,直接显示"注册失败"
        // 2.如果集合中没有该用户,直接显示"注册成功"

        // 为了防止用于重复使用HashSet存储用户数据
        Set<User> users = new HashSet<>();
        // 初始化一些数据用于测试
        users.add(new User("jack", "1"));

        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.print("请输入用户名:");
            String username = sc.next();
            System.out.print("请输入密码:");
            String password = sc.next();

            // 编写方法判断是否注册过
            User user = isRegister(users, username);
            if (user != null) {
                // 说明已经注册过了
                System.out.println("注册失败 账号已经存在");
                break;
            } else {
                // 说明没有注册 把信息添加到集合
                users.add(new User(username, password));
                System.out.println("注册成功");
            }
        }
    }

    /**
     * 判断是否注册过
     * @param users 存储用户信息的集合
     * @param username 用户名
     * @return 返回user对象 如果为null 说明该用户没有注册过
     */
    private static User isRegister(Set<User> users, String username) {
        // 根据用户名去遍历集合
        for (User user : users) {
            if (user.getName().equals(username)) {
                return user;
            }
        }
        return null;
    }
}
